<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="spanner_v1.html">Cloud Spanner API</a> . <a href="spanner_v1.projects.html">projects</a> . <a href="spanner_v1.projects.instanceConfigs.html">instanceConfigs</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="spanner_v1.projects.instanceConfigs.operations.html">operations()</a></code>
</p>
<p class="firstline">Returns the operations Resource.</p>

<p class="toc_element">
  <code><a href="spanner_v1.projects.instanceConfigs.ssdCaches.html">ssdCaches()</a></code>
</p>
<p class="firstline">Returns the ssdCaches Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an instance configuration and begins preparing it to be used. The returned long-running operation can be used to track the progress of preparing the new instance configuration. The instance configuration name is assigned by the caller. If the named instance configuration already exists, `CreateInstanceConfig` returns `ALREADY_EXISTS`. Immediately after the request returns: * The instance configuration is readable via the API, with all requested attributes. The instance configuration's reconciling field is set to true. Its state is `CREATING`. While the operation is pending: * Cancelling the operation renders the instance configuration immediately unreadable via the API. * Except for deleting the creating resource, all other attempts to modify the instance configuration are rejected. Upon completion of the returned operation: * Instances can be created using the instance configuration. * The instance configuration's reconciling field becomes false. Its state becomes `READY`. The returned long-running operation will have a name of the format `/operations/` and can be used to track creation of the instance configuration. The metadata field type is CreateInstanceConfigMetadata. The response field type is InstanceConfig, if successful. Authorization requires `spanner.instanceConfigs.create` permission on the resource parent.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, etag=None, validateOnly=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes the instance configuration. Deletion is only allowed when no instances are using the configuration. If any instances are using the configuration, returns `FAILED_PRECONDITION`. Only user-managed configurations can be deleted. Authorization requires `spanner.instanceConfigs.delete` permission on the resource name.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets information about a particular instance configuration.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the supported instance configurations for a given project. Returns both Google-managed configurations and user-managed configurations.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an instance configuration. The returned long-running operation can be used to track the progress of updating the instance. If the named instance configuration does not exist, returns `NOT_FOUND`. Only user-managed configurations can be updated. Immediately after the request returns: * The instance configuration's reconciling field is set to true. While the operation is pending: * Cancelling the operation sets its metadata's cancel_time. The operation is guaranteed to succeed at undoing all changes, after which point it terminates with a `CANCELLED` status. * All other attempts to modify the instance configuration are rejected. * Reading the instance configuration via the API continues to give the pre-request values. Upon completion of the returned operation: * Creating instances using the instance configuration uses the new values. * The new values of the instance configuration are readable via the API. * The instance configuration's reconciling field becomes false. The returned long-running operation will have a name of the format `/operations/` and can be used to track the instance configuration modification. The metadata field type is UpdateInstanceConfigMetadata. The response field type is InstanceConfig, if successful. Authorization requires `spanner.instanceConfigs.update` permission on the resource name.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates an instance configuration and begins preparing it to be used. The returned long-running operation can be used to track the progress of preparing the new instance configuration. The instance configuration name is assigned by the caller. If the named instance configuration already exists, `CreateInstanceConfig` returns `ALREADY_EXISTS`. Immediately after the request returns: * The instance configuration is readable via the API, with all requested attributes. The instance configuration&#x27;s reconciling field is set to true. Its state is `CREATING`. While the operation is pending: * Cancelling the operation renders the instance configuration immediately unreadable via the API. * Except for deleting the creating resource, all other attempts to modify the instance configuration are rejected. Upon completion of the returned operation: * Instances can be created using the instance configuration. * The instance configuration&#x27;s reconciling field becomes false. Its state becomes `READY`. The returned long-running operation will have a name of the format `/operations/` and can be used to track creation of the instance configuration. The metadata field type is CreateInstanceConfigMetadata. The response field type is InstanceConfig, if successful. Authorization requires `spanner.instanceConfigs.create` permission on the resource parent.

Args:
  parent: string, Required. The name of the project in which to create the instance configuration. Values are of the form `projects/`. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for CreateInstanceConfig.
  &quot;instanceConfig&quot;: { # A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication. # Required. The `InstanceConfig` proto of the configuration to create. `instance_config.name` must be `/instanceConfigs/`. `instance_config.base_config` must be a Google-managed configuration name, e.g. /instanceConfigs/us-east1, /instanceConfigs/nam3.
    &quot;baseConfig&quot;: &quot;A String&quot;, # Base configuration name, e.g. projects//instanceConfigs/nam3, based on which this configuration is created. Only set for user-managed configurations. `base_config` must refer to a configuration of type `GOOGLE_MANAGED` in the same project as this configuration.
    &quot;configType&quot;: &quot;A String&quot;, # Output only. Whether this instance configuration is a Google-managed or user-managed configuration.
    &quot;displayName&quot;: &quot;A String&quot;, # The name of this instance configuration as it appears in UIs.
    &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance configuration from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance configuration updates in order to avoid race conditions: An etag is returned in the response which contains instance configurations, and systems are expected to put that etag in the request to update instance configuration to ensure that their change is applied to the same version of the instance configuration. If no etag is provided in the call to update the instance configuration, then the existing instance configuration is overwritten blindly.
    &quot;freeInstanceAvailability&quot;: &quot;A String&quot;, # Output only. Describes whether free instances are available to be created in this instance configuration.
    &quot;labels&quot;: { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer&#x27;s organizational needs and deployment strategies. Cloud Labels can be used to filter collections of resources. They can be used to control how resource metrics are aggregated. And they can be used as arguments to policy management rules (e.g. route, firewall, load balancing, etc.). * Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression `[a-z0-9_-]{0,63}`. * No more than 64 labels can be associated with a given resource. See https://goo.gl/xmQnxf for more information on and examples of labels. If you plan to use labels in your own code, please note that additional characters may be allowed in the future. Therefore, you are advised to use an internal label representation, such as JSON, which doesn&#x27;t rely upon specific characters being disallowed. For example, representing labels as the string: name + &quot;_&quot; + value would prove problematic if we were to allow &quot;_&quot; in a future release.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;leaderOptions&quot;: [ # Allowed values of the &quot;default_leader&quot; schema option for databases in instances that use this instance configuration.
      &quot;A String&quot;,
    ],
    &quot;name&quot;: &quot;A String&quot;, # A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`.
    &quot;optionalReplicas&quot;: [ # Output only. The available optional replicas to choose from for user-managed configurations. Populated for Google-managed configurations.
      {
        &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
        &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
        &quot;type&quot;: &quot;A String&quot;, # The type of replica.
      },
    ],
    &quot;quorumType&quot;: &quot;A String&quot;, # Output only. The `QuorumType` of the instance configuration.
    &quot;reconciling&quot;: True or False, # Output only. If true, the instance configuration is being created or updated. If false, there are no ongoing operations for the instance configuration.
    &quot;replicas&quot;: [ # The geographic placement of nodes in this instance configuration and their replication properties. To create user-managed configurations, input `replicas` must include all replicas in `replicas` of the `base_config` and include one or more replicas in the `optional_replicas` of the `base_config`.
      {
        &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
        &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
        &quot;type&quot;: &quot;A String&quot;, # The type of replica.
      },
    ],
    &quot;state&quot;: &quot;A String&quot;, # Output only. The current instance configuration state. Applicable only for `USER_MANAGED` configurations.
    &quot;storageLimitPerProcessingUnit&quot;: &quot;A String&quot;, # Output only. The storage limit in bytes per processing unit.
  },
  &quot;instanceConfigId&quot;: &quot;A String&quot;, # Required. The ID of the instance configuration to create. Valid identifiers are of the form `custom-[-a-z0-9]*[a-z0-9]` and must be between 2 and 64 characters in length. The `custom-` prefix is required to avoid name conflicts with Google-managed configurations.
  &quot;validateOnly&quot;: True or False, # An option to validate, but not actually execute, a request, and provide the same response.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, etag=None, validateOnly=None, x__xgafv=None)</code>
  <pre>Deletes the instance configuration. Deletion is only allowed when no instances are using the configuration. If any instances are using the configuration, returns `FAILED_PRECONDITION`. Only user-managed configurations can be deleted. Authorization requires `spanner.instanceConfigs.delete` permission on the resource name.

Args:
  name: string, Required. The name of the instance configuration to be deleted. Values are of the form `projects//instanceConfigs/` (required)
  etag: string, Used for optimistic concurrency control as a way to help prevent simultaneous deletes of an instance configuration from overwriting each other. If not empty, the API only deletes the instance configuration when the etag provided matches the current status of the requested instance configuration. Otherwise, deletes the instance configuration without checking the current status of the requested instance configuration.
  validateOnly: boolean, An option to validate, but not actually execute, a request, and provide the same response.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets information about a particular instance configuration.

Args:
  name: string, Required. The name of the requested instance configuration. Values are of the form `projects//instanceConfigs/`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.
  &quot;baseConfig&quot;: &quot;A String&quot;, # Base configuration name, e.g. projects//instanceConfigs/nam3, based on which this configuration is created. Only set for user-managed configurations. `base_config` must refer to a configuration of type `GOOGLE_MANAGED` in the same project as this configuration.
  &quot;configType&quot;: &quot;A String&quot;, # Output only. Whether this instance configuration is a Google-managed or user-managed configuration.
  &quot;displayName&quot;: &quot;A String&quot;, # The name of this instance configuration as it appears in UIs.
  &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance configuration from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance configuration updates in order to avoid race conditions: An etag is returned in the response which contains instance configurations, and systems are expected to put that etag in the request to update instance configuration to ensure that their change is applied to the same version of the instance configuration. If no etag is provided in the call to update the instance configuration, then the existing instance configuration is overwritten blindly.
  &quot;freeInstanceAvailability&quot;: &quot;A String&quot;, # Output only. Describes whether free instances are available to be created in this instance configuration.
  &quot;labels&quot;: { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer&#x27;s organizational needs and deployment strategies. Cloud Labels can be used to filter collections of resources. They can be used to control how resource metrics are aggregated. And they can be used as arguments to policy management rules (e.g. route, firewall, load balancing, etc.). * Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression `[a-z0-9_-]{0,63}`. * No more than 64 labels can be associated with a given resource. See https://goo.gl/xmQnxf for more information on and examples of labels. If you plan to use labels in your own code, please note that additional characters may be allowed in the future. Therefore, you are advised to use an internal label representation, such as JSON, which doesn&#x27;t rely upon specific characters being disallowed. For example, representing labels as the string: name + &quot;_&quot; + value would prove problematic if we were to allow &quot;_&quot; in a future release.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;leaderOptions&quot;: [ # Allowed values of the &quot;default_leader&quot; schema option for databases in instances that use this instance configuration.
    &quot;A String&quot;,
  ],
  &quot;name&quot;: &quot;A String&quot;, # A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`.
  &quot;optionalReplicas&quot;: [ # Output only. The available optional replicas to choose from for user-managed configurations. Populated for Google-managed configurations.
    {
      &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
      &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of replica.
    },
  ],
  &quot;quorumType&quot;: &quot;A String&quot;, # Output only. The `QuorumType` of the instance configuration.
  &quot;reconciling&quot;: True or False, # Output only. If true, the instance configuration is being created or updated. If false, there are no ongoing operations for the instance configuration.
  &quot;replicas&quot;: [ # The geographic placement of nodes in this instance configuration and their replication properties. To create user-managed configurations, input `replicas` must include all replicas in `replicas` of the `base_config` and include one or more replicas in the `optional_replicas` of the `base_config`.
    {
      &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
      &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
      &quot;type&quot;: &quot;A String&quot;, # The type of replica.
    },
  ],
  &quot;state&quot;: &quot;A String&quot;, # Output only. The current instance configuration state. Applicable only for `USER_MANAGED` configurations.
  &quot;storageLimitPerProcessingUnit&quot;: &quot;A String&quot;, # Output only. The storage limit in bytes per processing unit.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists the supported instance configurations for a given project. Returns both Google-managed configurations and user-managed configurations.

Args:
  parent: string, Required. The name of the project for which a list of supported instance configurations is requested. Values are of the form `projects/`. (required)
  pageSize: integer, Number of instance configurations to be returned in the response. If 0 or less, defaults to the server&#x27;s maximum allowed page size.
  pageToken: string, If non-empty, `page_token` should contain a next_page_token from a previous ListInstanceConfigsResponse.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response for ListInstanceConfigs.
  &quot;instanceConfigs&quot;: [ # The list of requested instance configurations.
    { # A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.
      &quot;baseConfig&quot;: &quot;A String&quot;, # Base configuration name, e.g. projects//instanceConfigs/nam3, based on which this configuration is created. Only set for user-managed configurations. `base_config` must refer to a configuration of type `GOOGLE_MANAGED` in the same project as this configuration.
      &quot;configType&quot;: &quot;A String&quot;, # Output only. Whether this instance configuration is a Google-managed or user-managed configuration.
      &quot;displayName&quot;: &quot;A String&quot;, # The name of this instance configuration as it appears in UIs.
      &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance configuration from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance configuration updates in order to avoid race conditions: An etag is returned in the response which contains instance configurations, and systems are expected to put that etag in the request to update instance configuration to ensure that their change is applied to the same version of the instance configuration. If no etag is provided in the call to update the instance configuration, then the existing instance configuration is overwritten blindly.
      &quot;freeInstanceAvailability&quot;: &quot;A String&quot;, # Output only. Describes whether free instances are available to be created in this instance configuration.
      &quot;labels&quot;: { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer&#x27;s organizational needs and deployment strategies. Cloud Labels can be used to filter collections of resources. They can be used to control how resource metrics are aggregated. And they can be used as arguments to policy management rules (e.g. route, firewall, load balancing, etc.). * Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression `[a-z0-9_-]{0,63}`. * No more than 64 labels can be associated with a given resource. See https://goo.gl/xmQnxf for more information on and examples of labels. If you plan to use labels in your own code, please note that additional characters may be allowed in the future. Therefore, you are advised to use an internal label representation, such as JSON, which doesn&#x27;t rely upon specific characters being disallowed. For example, representing labels as the string: name + &quot;_&quot; + value would prove problematic if we were to allow &quot;_&quot; in a future release.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;leaderOptions&quot;: [ # Allowed values of the &quot;default_leader&quot; schema option for databases in instances that use this instance configuration.
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`.
      &quot;optionalReplicas&quot;: [ # Output only. The available optional replicas to choose from for user-managed configurations. Populated for Google-managed configurations.
        {
          &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
          &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
          &quot;type&quot;: &quot;A String&quot;, # The type of replica.
        },
      ],
      &quot;quorumType&quot;: &quot;A String&quot;, # Output only. The `QuorumType` of the instance configuration.
      &quot;reconciling&quot;: True or False, # Output only. If true, the instance configuration is being created or updated. If false, there are no ongoing operations for the instance configuration.
      &quot;replicas&quot;: [ # The geographic placement of nodes in this instance configuration and their replication properties. To create user-managed configurations, input `replicas` must include all replicas in `replicas` of the `base_config` and include one or more replicas in the `optional_replicas` of the `base_config`.
        {
          &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
          &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
          &quot;type&quot;: &quot;A String&quot;, # The type of replica.
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # Output only. The current instance configuration state. Applicable only for `USER_MANAGED` configurations.
      &quot;storageLimitPerProcessingUnit&quot;: &quot;A String&quot;, # Output only. The storage limit in bytes per processing unit.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # `next_page_token` can be sent in a subsequent ListInstanceConfigs call to fetch more of the matching instance configurations.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, x__xgafv=None)</code>
  <pre>Updates an instance configuration. The returned long-running operation can be used to track the progress of updating the instance. If the named instance configuration does not exist, returns `NOT_FOUND`. Only user-managed configurations can be updated. Immediately after the request returns: * The instance configuration&#x27;s reconciling field is set to true. While the operation is pending: * Cancelling the operation sets its metadata&#x27;s cancel_time. The operation is guaranteed to succeed at undoing all changes, after which point it terminates with a `CANCELLED` status. * All other attempts to modify the instance configuration are rejected. * Reading the instance configuration via the API continues to give the pre-request values. Upon completion of the returned operation: * Creating instances using the instance configuration uses the new values. * The new values of the instance configuration are readable via the API. * The instance configuration&#x27;s reconciling field becomes false. The returned long-running operation will have a name of the format `/operations/` and can be used to track the instance configuration modification. The metadata field type is UpdateInstanceConfigMetadata. The response field type is InstanceConfig, if successful. Authorization requires `spanner.instanceConfigs.update` permission on the resource name.

Args:
  name: string, A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for UpdateInstanceConfig.
  &quot;instanceConfig&quot;: { # A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication. # Required. The user instance configuration to update, which must always include the instance configuration name. Otherwise, only fields mentioned in update_mask need be included. To prevent conflicts of concurrent updates, etag can be used.
    &quot;baseConfig&quot;: &quot;A String&quot;, # Base configuration name, e.g. projects//instanceConfigs/nam3, based on which this configuration is created. Only set for user-managed configurations. `base_config` must refer to a configuration of type `GOOGLE_MANAGED` in the same project as this configuration.
    &quot;configType&quot;: &quot;A String&quot;, # Output only. Whether this instance configuration is a Google-managed or user-managed configuration.
    &quot;displayName&quot;: &quot;A String&quot;, # The name of this instance configuration as it appears in UIs.
    &quot;etag&quot;: &quot;A String&quot;, # etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance configuration from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance configuration updates in order to avoid race conditions: An etag is returned in the response which contains instance configurations, and systems are expected to put that etag in the request to update instance configuration to ensure that their change is applied to the same version of the instance configuration. If no etag is provided in the call to update the instance configuration, then the existing instance configuration is overwritten blindly.
    &quot;freeInstanceAvailability&quot;: &quot;A String&quot;, # Output only. Describes whether free instances are available to be created in this instance configuration.
    &quot;labels&quot;: { # Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer&#x27;s organizational needs and deployment strategies. Cloud Labels can be used to filter collections of resources. They can be used to control how resource metrics are aggregated. And they can be used as arguments to policy management rules (e.g. route, firewall, load balancing, etc.). * Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression `[a-z0-9_-]{0,63}`. * No more than 64 labels can be associated with a given resource. See https://goo.gl/xmQnxf for more information on and examples of labels. If you plan to use labels in your own code, please note that additional characters may be allowed in the future. Therefore, you are advised to use an internal label representation, such as JSON, which doesn&#x27;t rely upon specific characters being disallowed. For example, representing labels as the string: name + &quot;_&quot; + value would prove problematic if we were to allow &quot;_&quot; in a future release.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;leaderOptions&quot;: [ # Allowed values of the &quot;default_leader&quot; schema option for databases in instances that use this instance configuration.
      &quot;A String&quot;,
    ],
    &quot;name&quot;: &quot;A String&quot;, # A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`. User instance configuration must start with `custom-`.
    &quot;optionalReplicas&quot;: [ # Output only. The available optional replicas to choose from for user-managed configurations. Populated for Google-managed configurations.
      {
        &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
        &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
        &quot;type&quot;: &quot;A String&quot;, # The type of replica.
      },
    ],
    &quot;quorumType&quot;: &quot;A String&quot;, # Output only. The `QuorumType` of the instance configuration.
    &quot;reconciling&quot;: True or False, # Output only. If true, the instance configuration is being created or updated. If false, there are no ongoing operations for the instance configuration.
    &quot;replicas&quot;: [ # The geographic placement of nodes in this instance configuration and their replication properties. To create user-managed configurations, input `replicas` must include all replicas in `replicas` of the `base_config` and include one or more replicas in the `optional_replicas` of the `base_config`.
      {
        &quot;defaultLeaderLocation&quot;: True or False, # If true, this location is designated as the default leader location where leader replicas are placed. See the [region types documentation](https://cloud.google.com/spanner/docs/instances#region_types) for more details.
        &quot;location&quot;: &quot;A String&quot;, # The location of the serving resources, e.g., &quot;us-central1&quot;.
        &quot;type&quot;: &quot;A String&quot;, # The type of replica.
      },
    ],
    &quot;state&quot;: &quot;A String&quot;, # Output only. The current instance configuration state. Applicable only for `USER_MANAGED` configurations.
    &quot;storageLimitPerProcessingUnit&quot;: &quot;A String&quot;, # Output only. The storage limit in bytes per processing unit.
  },
  &quot;updateMask&quot;: &quot;A String&quot;, # Required. A mask specifying which fields in InstanceConfig should be updated. The field mask must always be specified; this prevents any future fields in InstanceConfig from being erased accidentally by clients that do not know about them. Only display_name and labels can be updated.
  &quot;validateOnly&quot;: True or False, # An option to validate, but not actually execute, a request, and provide the same response.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

</body></html>